
package com.platform.modules.sys.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.platform.common.validator.group.AddGroup;
import com.platform.common.validator.group.UpdateGroup;

import lombok.Data;

/**
 * 组织机构实体 表名 sys_org
 *
 * @author 肖亮
 * @date 2019-01-21 11:29:22
 */
@Data
@TableName("SYS_ORG")
@ApiModel(value="单位实体类",description="单位实体类")
public class SysOrgEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 机构编码
	 */
	@ApiModelProperty(value="机构编码",example="")
	@TableId
	private String orgNo;

	/**
	 * 机构名称
	 */
	@ApiModelProperty(value="机构名称",example="")
	@NotBlank(message = "机构名称不能为空", groups = { AddGroup.class, UpdateGroup.class })
	private String orgName;

	/**
	 * 上级机构编码
	 */
	@ApiModelProperty(value="上级机构编码",example="")
	@NotBlank(message = "上级机构不能为空", groups = { AddGroup.class, UpdateGroup.class })
	private String parentNo;
	
	/**
	 *机构级别
	 */
	@ApiModelProperty(value="机构级别",example="")
	@NotNull(message = "机构级别不能为空", groups = { AddGroup.class, UpdateGroup.class })
	private Integer orgLevel;

	/**
	 * 机构类别（1.建设单位2.勘察单位3.设计单位4.审图办单位5.监管机构单位6.运维单位7.勘察设计）
	 */
	@ApiModelProperty(value="机构类别（1.建设单位2.勘察单位3.设计单位4.审图办单位5.监管机构单位6.运维单位7.勘察设计）",example="")
	@NotNull(message = "机构类别不能为空", groups = { AddGroup.class, UpdateGroup.class })
	private String orgType;
	
	/**
	 * 建设单位企业/个人（1企业2个人）
	 */
	@ApiModelProperty(value="建设单位企业/个人（1企业2个人）",example="")
	private String orgPerson;
	
	/**
	 * 状态 0：无效 1：有效
	 */
	@ApiModelProperty(value="状态 0：无效 1：有效",example="")
	private String status;
	
	/**
	 * 排序
	 */
	@ApiModelProperty(value="排序",example="")
	private Integer sort;

	/**
	 * 创建者ID
	 */
	@ApiModelProperty(value="创建者ID",example="")
	private String createUserId;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value="创建时间",example="")
	private Date createTime;
	
	/**
	 * 所在省份
	 */
	@ApiModelProperty(value="所在省份",example="")
	private String provinceNo;
	
	/**
	 * 所在市
	 */
	@ApiModelProperty(value="所在市",example="")
	private String cityNo;
	
	/**
	 * 所在县
	 */
	@ApiModelProperty(value="所在县",example="")
	private String countyNo;
	
	/**
	 * 工商注册地址
	 */
	@ApiModelProperty(value="工商注册地址",example="")
	private String address;
	
	/**
	 * 信用代码
	 */
	@ApiModelProperty(value="信用代码",example="")
	private String creditCode;
	
	/**
	 * 经济类型
	 */
	@ApiModelProperty(value="经济类型",example="")
	private String ecoType;
	
	/**
	 * 法人代表
	 */
	@ApiModelProperty(value="法人代表",example="")
	private String comartiperson;
	
	/**
	 * 法人手机号码
	 */
	@ApiModelProperty(value="法人手机号码",example="")
	private String comartiphone;
	
	/**
	 * 法人身份证号
	 */
	@ApiModelProperty(value="法人身份证号",example="")
	private String comartiCertCode;
	
	/**
	 *企业联系人
	 */
	@ApiModelProperty(value="企业联系人",example="")
	private String comconnperson;
	
	/**
	 * 联系人电话
	 */
	@ApiModelProperty(value="联系人电话",example="")
	private String comconnphone;
	
	/**
	 * 基本户开户行
	 */
	@ApiModelProperty(value="基本户开户行",example="")
	private String basicAccountBank;
	
	/**
	 * 企业联系电话
	 */
	@ApiModelProperty(value="企业联系电话",example="")
	private String orgLinkPhone;
	
	/**
	 * 企业联系传真
	 */
	@ApiModelProperty(value="企业联系传真",example="")
	private String orgLinkFax;

	/**
	 * 企业网址
	 */
	@ApiModelProperty(value="企业网址",example="")
	private String orgWebsite;
	
	/**
	 * 企业联系邮箱
	 */
	@ApiModelProperty(value="企业联系邮箱",example="")
	private String orgLinkMailbox;

	/**
	 * 基本户开户行账号
	 */
	@ApiModelProperty(value="基本户开户行账号",example="")
	private String basicAccountBankNo;

	/**
	 * 最后年检日期
	 */
	@ApiModelProperty(value="最后年检日期",example="")
	private Date lastAnnualDate;

	/**
	 * 工商注册日期
	 */
	@ApiModelProperty(value="工商注册日期",example="")
	private Date registerDate;

	/**
	 * 营业执照登记机关
	 */
	@ApiModelProperty(value="营业执照登记机关",example="")
	private String licenseRegisterAuthor;

	/**
	 * 注册资本金(人民币)
	 */
	@ApiModelProperty(value="注册资本金(人民币)",example="")
	private String registerCapital;

	/**
	 * 企业经营地址
	 */
	@ApiModelProperty(value="企业经营地址",example="")
	private String businessAddress;
	
	/**
	 * 企业营业期限
	 */
	@ApiModelProperty(value="企业营业期限",example="")
	private Date businessDate;
	
	/**
	 * 经营地址邮编
	 */
	@ApiModelProperty(value="经营地址邮编",example="")
	private String businessFax;

	/**
	 * 经营范围
	 */
	@ApiModelProperty(value="经营范围",example="")
	private String businessScope;

	/**
	 * 审查机构
	 */
	@ApiModelProperty(value="审查机构",example="")
	private String checkOrg;

	/**
	 * 审查时间
	 */
	@ApiModelProperty(value="审查时间",example="")
	private Date checkTime;

	/**
	 * 企业简介
	 */
	@ApiModelProperty(value="企业简介",example="")
	private String orgIntroduction;
	
	////////////////非数据库字段
	/**
	 * 登录名
	 */
	@ApiModelProperty(value="登录名",example="")
	@TableField(exist = false)
	private String userName;
	
	/**
	 * 机构类别（1.建设单位2.勘察单位3.设计单位4.审图办单位5.监管机构单位6.运维单位7.勘察设计）
	 */
	@ApiModelProperty(value="机构类别（1.建设单位2.勘察单位3.设计单位4.审图办单位5.监管机构单位6.运维单位7.勘察设计）",example="")
	@TableField(exist = false)
	private String orgTypeName;

	/**
	 * 状态 0：无效 1：有效
	 */
	@ApiModelProperty(value="状态 0：无效 1：有效",example="")
	@TableField(exist = false)
	private String statusName;

	/**
	 * 上级机构名称
	 */
	@ApiModelProperty(value="上级机构名称",example="")
	@TableField(exist = false)
	private String parentName;

	/**
	 * 企业账号Id
	 */
	@ApiModelProperty(value="企业账号Id",example="")
	@TableField(exist = false)
	private String userId;
	
	/**
	 * 登录密码
	 */
	@ApiModelProperty(value="登录密码",example="")
	@TableField(exist = false)
	private String password;
	
	/**
	 *标记id(用于邮箱验证)
	 */
	@ApiModelProperty(value="标记id(用于邮箱验证)",example="")
	@TableField(exist = false)
	private String signId;
	
	/**
	 *所在省名称
	 */
	@ApiModelProperty(value="所在省名称",example="")
	@TableField(exist = false)
	private String provinceName;
	
	/**
	 *所在市名称
	 */
	@ApiModelProperty(value="所在市名称",example="")
	@TableField(exist = false)
	private String cityName;
	
	/**
	 *所在镇名称
	 */
	@ApiModelProperty(value="所在镇名称",example="")
	@TableField(exist = false)
	private String countyName;
	
	/**
	 *企业账号联系方式
	 */
	@ApiModelProperty(value="企业账号联系方式",example="")
	@TableField(exist = false)
	private String contact;
	
	/**
	 *企业账号用户名信息
	 */
	@ApiModelProperty(value="企业账号用户名信息",example="")
	@TableField(exist = false)
	private String realName;

	/**
	 * 机构资质列表
	 */
	@ApiModelProperty(value="机构资质列表",example="")
	@TableField(exist = false)
	private List<SysOrgAptitudeEntity> orgAptitudeList;
	
}
